Amazon RDS で100年有効な新しいCAが利用可能になりました
Amazon RDS で、セキュアなDB通信を行う際 に利用する認証局 (CA) として、 有効期限が40年弱(rds-ca-rsa2048-g1)、100年弱(rds-ca-rsa4096-g1, rds-ca-ecc384-g1) のCAが、2023年1月13日のアップデートで利用可能になりました。
今回、利用可能となった新しいCAを試す機会がありましたので、紹介させていただきます。
設定
RDS
DBエンジンバージョンは「MySQL 8.0.28」を利用しました。
認証機関として rds-ca-2019 (デフォルト) 以外の選択が可能になりました。
- rds-ca-2019 (デフォルト)
- rds-ca-ecc384-g1
- rds-ca-rsa4096-g1
- rds-ca-rsa2048-g1
認証機関として「rds-ca-rsa4096-g1」を設定しました。
疎通確認
クライアント
Amazon Linux 2 の EC2インスタンスで mariadb-5.5のパッケージを利用しました。
$ rpm -qf /usr/bin/mysql mariadb-5.5.68-1.amzn2.x86_64
証明書バンドルは、すべての AWS リージョンの中間証明書とルート証明書の両方を含む 「global-bundle.pem」 を 公式サイトよりダウンロードして利用しました。
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
疎通結果
DBHOST='###.###.ap-northeast-1.rds.amazonaws.com' echo "\s" | mysql -h ${DBHOST} -P 3306 -u admin --ssl-ca=global-bundle.pem --ssl -p
TLSv1.2 (ECDHE-RSA-AES256-GCM-SHA384) での接続が確認できました。
-------------- mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1 Connection id: 71 Current database: Current user: admin@##.##.##.## SSL: Cipher in use is ECDHE-RSA-AES256-GCM-SHA384 Current pager: stdout Using outfile: '' Using delimiter: ; Server: MySQL Server version: 8.0.28 Source distribution Protocol version: 10 Connection: ##.##.ap-northeast-1.rds.amazonaws.com via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb3 Conn. characterset: utf8mb3 TCP port: 3306 Uptime: 1 hour 49 min 54 sec Threads: 3 Questions: 13962 Slow queries: 0 Opens: 284 Flush tables: 3 Open tables: 178 Queries per second avg: 2.117 --------------
失効日
2023年1月時点のCA毎の有効期限は以下の通りでした。
認証機関情報 | 証明機関の日付 | DB instance certificate expiration date |
---|---|---|
rds-ca-2019 | 2024-08-23 | 2024-08-23 |
rds-ca-rsa2048-g1 | 2061-05-26 | 2026-01-14 |
rds-ca-ecc384-g1 | 2121-05-26 | 2026-01-14 |
rds-ca-rsa4096-g1 | 2121-05-26 | 2026-01-14 |
今回のアップデートで追加されたCAを利用するDBサーバの証明書については、2026年の有効期限が切れる前に自動ローテーションで利用出来るとされています。
When you use the rds-ca-rsa2048-g1, rds-ca-rsa4096-g1, or rds-ca-ecc384-g1 CA with a DB instance, RDS manages the server certificate on the DB instance. RDS rotates it automatically before it expires. These CA certificates are included in the regional and global certificate bundle. Using SSL/TLS to encrypt a connection to a DB instance
まとめ
RDS を セキュアなDB 通信で 利用するワークロードでは、これまで5年毎にサーバー(RDS)と クライアントの双方で、SSL/TLS 証明書のメンテナンスが必要でした。
今回追加されたCAを利用するRDSでは サーバー側の証明書は、40/100年間は自動更新で利用することが可能になります。新規にRDSインスタンスを作成される場合、新しい認証局をご活用ください。
従来の「rds-ca-2019」を認証局としている 既存のRDSインスタンスも、メンテナンスウィンドウを利用する事で新しい認証局を利用可能です。 セキュアなDB通信を利用している場合、クライアント側で利用する証明書バンドルの更新が必須となります。 「rds-ca-2019」の執行日 2024年8月までは1年半の猶予がありますが、早めに移行の準備、評価に取り掛かる事をお勧めします。
また、従来より高いセキュリティ強度のCA (RSA4096、ecc384)を長い有効期限で利用可能になりましたが、クライアント側の対応や負荷影響について、検証環境などで十分に確認してからご利用ください。
デジタル庁「暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準」 (初版:2022年(令和4年)6月、CRYPTREC LS-0003-2022)